package com.wjm.shootgame.shoot;

import java.awt.*;
import java.awt.image.BufferedImage;
/*
*
* 飞行物的基类（父类，超类）
* 用于重构子类公共的代码，子类只需要继承该类就可以获取该类的属性
*
* */
public abstract class FlyingObject {

    //设置飞机状态
    public int state = LIVE;
    public static final int LIVE = 0;//活着状态
    public static final int DEAD = 0;//死掉状态
    public static final int REMOVE = 0;//可以从内存中移除状态

    //大小
    public int width;
    public int height;
    //位置
    public int x;
    public int y;


    //适用于英雄类的，天空类，子弹类的构造方法
    public FlyingObject(int x,int y,int width,int height){
        this.width=width;
        this.height=height;
        this.x=x;
        this.y=y;

    }
    //适用于敌机的构造方法
    public FlyingObject(int width,int height){
        this.width=width;
        this.height=height;
        this.x=(int)(Math.random()*(World.WIDTH-this.width));
        this.y= -this.height;

    }


    //获取图片的抽象方法
    public abstract BufferedImage getImage();  //BufferedImage是java提供的一种图片类

    //飞行物移动的抽象方法
    public abstract void move();

    /**
     * 封装了一个画画的方法
     * @param g 相当于是画笔
     */
    public void paintImage(Graphics g){
        g.drawImage(this.getImage(),this.x,this.y,null);
    }
}
